/*
 * An XML document type.
 * Localname: mail-node
 * Namespace: urn:jbpm.org:jpdl-3.2
 * Java type: x2.orgJpdl3.jbpm.MailNodeDocument
 *
 * Automatically generated - do not modify.
 */
package x2.orgJpdl3.jbpm.impl;
/**
 * A document containing one mail-node(@urn:jbpm.org:jpdl-3.2) element.
 *
 * This is a complex type.
 */
public class MailNodeDocumentImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements x2.orgJpdl3.jbpm.MailNodeDocument
{
    private static final long serialVersionUID = 1L;
    
    public MailNodeDocumentImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName MAILNODE$0 = 
        new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "mail-node");
    
    
    /**
     * Gets the "mail-node" element
     */
    public x2.orgJpdl3.jbpm.MailNodeDocument.MailNode getMailNode()
    {
        synchronized (monitor())
        {
            check_orphaned();
            x2.orgJpdl3.jbpm.MailNodeDocument.MailNode target = null;
            target = (x2.orgJpdl3.jbpm.MailNodeDocument.MailNode)get_store().find_element_user(MAILNODE$0, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * Sets the "mail-node" element
     */
    public void setMailNode(x2.orgJpdl3.jbpm.MailNodeDocument.MailNode mailNode)
    {
        synchronized (monitor())
        {
            check_orphaned();
            x2.orgJpdl3.jbpm.MailNodeDocument.MailNode target = null;
            target = (x2.orgJpdl3.jbpm.MailNodeDocument.MailNode)get_store().find_element_user(MAILNODE$0, 0);
            if (target == null)
            {
                target = (x2.orgJpdl3.jbpm.MailNodeDocument.MailNode)get_store().add_element_user(MAILNODE$0);
            }
            target.set(mailNode);
        }
    }
    
    /**
     * Appends and returns a new empty "mail-node" element
     */
    public x2.orgJpdl3.jbpm.MailNodeDocument.MailNode addNewMailNode()
    {
        synchronized (monitor())
        {
            check_orphaned();
            x2.orgJpdl3.jbpm.MailNodeDocument.MailNode target = null;
            target = (x2.orgJpdl3.jbpm.MailNodeDocument.MailNode)get_store().add_element_user(MAILNODE$0);
            return target;
        }
    }
    /**
     * An XML mail-node(@urn:jbpm.org:jpdl-3.2).
     *
     * This is a complex type.
     */
    public static class MailNodeImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements x2.orgJpdl3.jbpm.MailNodeDocument.MailNode
    {
        private static final long serialVersionUID = 1L;
        
        public MailNodeImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType);
        }
        
        private static final javax.xml.namespace.QName SUBJECT$0 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "subject");
        private static final javax.xml.namespace.QName TEXT$2 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "text");
        private static final javax.xml.namespace.QName DESCRIPTION$4 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "description");
        private static final javax.xml.namespace.QName EVENT$6 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "event");
        private static final javax.xml.namespace.QName EXCEPTIONHANDLER$8 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "exception-handler");
        private static final javax.xml.namespace.QName TIMER$10 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "timer");
        private static final javax.xml.namespace.QName TRANSITION$12 = 
            new javax.xml.namespace.QName("urn:jbpm.org:jpdl-3.2", "transition");
        private static final javax.xml.namespace.QName NAME$14 = 
            new javax.xml.namespace.QName("", "name");
        private static final javax.xml.namespace.QName ASYNC$16 = 
            new javax.xml.namespace.QName("", "async");
        private static final javax.xml.namespace.QName TEMPLATE$18 = 
            new javax.xml.namespace.QName("", "template");
        private static final javax.xml.namespace.QName ACTORS$20 = 
            new javax.xml.namespace.QName("", "actors");
        private static final javax.xml.namespace.QName TO$22 = 
            new javax.xml.namespace.QName("", "to");
        private static final javax.xml.namespace.QName SUBJECT2$24 = 
            new javax.xml.namespace.QName("", "subject");
        private static final javax.xml.namespace.QName TEXT2$26 = 
            new javax.xml.namespace.QName("", "text");
        
        
        /**
         * Gets a List of "subject" elements
         */
        public java.util.List<java.lang.String> getSubjectList()
        {
            final class SubjectList extends java.util.AbstractList<java.lang.String>
            {
                public java.lang.String get(int i)
                    { return MailNodeImpl.this.getSubjectArray(i); }
                
                public java.lang.String set(int i, java.lang.String o)
                {
                    java.lang.String old = MailNodeImpl.this.getSubjectArray(i);
                    MailNodeImpl.this.setSubjectArray(i, o);
                    return old;
                }
                
                public void add(int i, java.lang.String o)
                    { MailNodeImpl.this.insertSubject(i, o); }
                
                public java.lang.String remove(int i)
                {
                    java.lang.String old = MailNodeImpl.this.getSubjectArray(i);
                    MailNodeImpl.this.removeSubject(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfSubjectArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new SubjectList();
            }
        }
        
        /**
         * Gets array of all "subject" elements
         * @deprecated
         */
        public java.lang.String[] getSubjectArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<org.apache.xmlbeans.XmlString> targetList = new java.util.ArrayList<org.apache.xmlbeans.XmlString>();
                get_store().find_all_element_users(SUBJECT$0, targetList);
                java.lang.String[] result = new java.lang.String[targetList.size()];
                for (int i = 0, len = targetList.size() ; i < len ; i++)
                    result[i] = ((org.apache.xmlbeans.SimpleValue)targetList.get(i)).getStringValue();
                return result;
            }
        }
        
        /**
         * Gets ith "subject" element
         */
        public java.lang.String getSubjectArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(SUBJECT$0, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) a List of "subject" elements
         */
        public java.util.List<org.apache.xmlbeans.XmlString> xgetSubjectList()
        {
            final class SubjectList extends java.util.AbstractList<org.apache.xmlbeans.XmlString>
            {
                public org.apache.xmlbeans.XmlString get(int i)
                    { return MailNodeImpl.this.xgetSubjectArray(i); }
                
                public org.apache.xmlbeans.XmlString set(int i, org.apache.xmlbeans.XmlString o)
                {
                    org.apache.xmlbeans.XmlString old = MailNodeImpl.this.xgetSubjectArray(i);
                    MailNodeImpl.this.xsetSubjectArray(i, o);
                    return old;
                }
                
                public void add(int i, org.apache.xmlbeans.XmlString o)
                    { MailNodeImpl.this.insertNewSubject(i).set(o); }
                
                public org.apache.xmlbeans.XmlString remove(int i)
                {
                    org.apache.xmlbeans.XmlString old = MailNodeImpl.this.xgetSubjectArray(i);
                    MailNodeImpl.this.removeSubject(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfSubjectArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new SubjectList();
            }
        }
        
        /**
         * Gets array of all "subject" elements
         * @deprecated
         */
        public org.apache.xmlbeans.XmlString[] xgetSubjectArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<org.apache.xmlbeans.XmlString> targetList = new java.util.ArrayList<org.apache.xmlbeans.XmlString>();
                get_store().find_all_element_users(SUBJECT$0, targetList);
                org.apache.xmlbeans.XmlString[] result = new org.apache.xmlbeans.XmlString[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets (as xml) ith "subject" element
         */
        public org.apache.xmlbeans.XmlString xgetSubjectArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(SUBJECT$0, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return (org.apache.xmlbeans.XmlString)target;
            }
        }
        
        /**
         * Returns number of "subject" element
         */
        public int sizeOfSubjectArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(SUBJECT$0);
            }
        }
        
        /**
         * Sets array of all "subject" element
         */
        public void setSubjectArray(java.lang.String[] subjectArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(subjectArray, SUBJECT$0);
            }
        }
        
        /**
         * Sets ith "subject" element
         */
        public void setSubjectArray(int i, java.lang.String subject)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(SUBJECT$0, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.setStringValue(subject);
            }
        }
        
        /**
         * Sets (as xml) array of all "subject" element
         */
        public void xsetSubjectArray(org.apache.xmlbeans.XmlString[]subjectArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(subjectArray, SUBJECT$0);
            }
        }
        
        /**
         * Sets (as xml) ith "subject" element
         */
        public void xsetSubjectArray(int i, org.apache.xmlbeans.XmlString subject)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(SUBJECT$0, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(subject);
            }
        }
        
        /**
         * Inserts the value as the ith "subject" element
         */
        public void insertSubject(int i, java.lang.String subject)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = 
                    (org.apache.xmlbeans.SimpleValue)get_store().insert_element_user(SUBJECT$0, i);
                target.setStringValue(subject);
            }
        }
        
        /**
         * Appends the value as the last "subject" element
         */
        public void addSubject(java.lang.String subject)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(SUBJECT$0);
                target.setStringValue(subject);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "subject" element
         */
        public org.apache.xmlbeans.XmlString insertNewSubject(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().insert_element_user(SUBJECT$0, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "subject" element
         */
        public org.apache.xmlbeans.XmlString addNewSubject()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(SUBJECT$0);
                return target;
            }
        }
        
        /**
         * Removes the ith "subject" element
         */
        public void removeSubject(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(SUBJECT$0, i);
            }
        }
        
        /**
         * Gets a List of "text" elements
         */
        public java.util.List<java.lang.String> getTextList()
        {
            final class TextList extends java.util.AbstractList<java.lang.String>
            {
                public java.lang.String get(int i)
                    { return MailNodeImpl.this.getTextArray(i); }
                
                public java.lang.String set(int i, java.lang.String o)
                {
                    java.lang.String old = MailNodeImpl.this.getTextArray(i);
                    MailNodeImpl.this.setTextArray(i, o);
                    return old;
                }
                
                public void add(int i, java.lang.String o)
                    { MailNodeImpl.this.insertText(i, o); }
                
                public java.lang.String remove(int i)
                {
                    java.lang.String old = MailNodeImpl.this.getTextArray(i);
                    MailNodeImpl.this.removeText(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfTextArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new TextList();
            }
        }
        
        /**
         * Gets array of all "text" elements
         * @deprecated
         */
        public java.lang.String[] getTextArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<org.apache.xmlbeans.XmlString> targetList = new java.util.ArrayList<org.apache.xmlbeans.XmlString>();
                get_store().find_all_element_users(TEXT$2, targetList);
                java.lang.String[] result = new java.lang.String[targetList.size()];
                for (int i = 0, len = targetList.size() ; i < len ; i++)
                    result[i] = ((org.apache.xmlbeans.SimpleValue)targetList.get(i)).getStringValue();
                return result;
            }
        }
        
        /**
         * Gets ith "text" element
         */
        public java.lang.String getTextArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(TEXT$2, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) a List of "text" elements
         */
        public java.util.List<org.apache.xmlbeans.XmlString> xgetTextList()
        {
            final class TextList extends java.util.AbstractList<org.apache.xmlbeans.XmlString>
            {
                public org.apache.xmlbeans.XmlString get(int i)
                    { return MailNodeImpl.this.xgetTextArray(i); }
                
                public org.apache.xmlbeans.XmlString set(int i, org.apache.xmlbeans.XmlString o)
                {
                    org.apache.xmlbeans.XmlString old = MailNodeImpl.this.xgetTextArray(i);
                    MailNodeImpl.this.xsetTextArray(i, o);
                    return old;
                }
                
                public void add(int i, org.apache.xmlbeans.XmlString o)
                    { MailNodeImpl.this.insertNewText(i).set(o); }
                
                public org.apache.xmlbeans.XmlString remove(int i)
                {
                    org.apache.xmlbeans.XmlString old = MailNodeImpl.this.xgetTextArray(i);
                    MailNodeImpl.this.removeText(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfTextArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new TextList();
            }
        }
        
        /**
         * Gets array of all "text" elements
         * @deprecated
         */
        public org.apache.xmlbeans.XmlString[] xgetTextArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<org.apache.xmlbeans.XmlString> targetList = new java.util.ArrayList<org.apache.xmlbeans.XmlString>();
                get_store().find_all_element_users(TEXT$2, targetList);
                org.apache.xmlbeans.XmlString[] result = new org.apache.xmlbeans.XmlString[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets (as xml) ith "text" element
         */
        public org.apache.xmlbeans.XmlString xgetTextArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(TEXT$2, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return (org.apache.xmlbeans.XmlString)target;
            }
        }
        
        /**
         * Returns number of "text" element
         */
        public int sizeOfTextArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(TEXT$2);
            }
        }
        
        /**
         * Sets array of all "text" element
         */
        public void setTextArray(java.lang.String[] textArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(textArray, TEXT$2);
            }
        }
        
        /**
         * Sets ith "text" element
         */
        public void setTextArray(int i, java.lang.String text)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(TEXT$2, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.setStringValue(text);
            }
        }
        
        /**
         * Sets (as xml) array of all "text" element
         */
        public void xsetTextArray(org.apache.xmlbeans.XmlString[]textArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(textArray, TEXT$2);
            }
        }
        
        /**
         * Sets (as xml) ith "text" element
         */
        public void xsetTextArray(int i, org.apache.xmlbeans.XmlString text)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(TEXT$2, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(text);
            }
        }
        
        /**
         * Inserts the value as the ith "text" element
         */
        public void insertText(int i, java.lang.String text)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = 
                    (org.apache.xmlbeans.SimpleValue)get_store().insert_element_user(TEXT$2, i);
                target.setStringValue(text);
            }
        }
        
        /**
         * Appends the value as the last "text" element
         */
        public void addText(java.lang.String text)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(TEXT$2);
                target.setStringValue(text);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "text" element
         */
        public org.apache.xmlbeans.XmlString insertNewText(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().insert_element_user(TEXT$2, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "text" element
         */
        public org.apache.xmlbeans.XmlString addNewText()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(TEXT$2);
                return target;
            }
        }
        
        /**
         * Removes the ith "text" element
         */
        public void removeText(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(TEXT$2, i);
            }
        }
        
        /**
         * Gets a List of "description" elements
         */
        public java.util.List<java.lang.String> getDescriptionList()
        {
            final class DescriptionList extends java.util.AbstractList<java.lang.String>
            {
                public java.lang.String get(int i)
                    { return MailNodeImpl.this.getDescriptionArray(i); }
                
                public java.lang.String set(int i, java.lang.String o)
                {
                    java.lang.String old = MailNodeImpl.this.getDescriptionArray(i);
                    MailNodeImpl.this.setDescriptionArray(i, o);
                    return old;
                }
                
                public void add(int i, java.lang.String o)
                    { MailNodeImpl.this.insertDescription(i, o); }
                
                public java.lang.String remove(int i)
                {
                    java.lang.String old = MailNodeImpl.this.getDescriptionArray(i);
                    MailNodeImpl.this.removeDescription(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfDescriptionArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new DescriptionList();
            }
        }
        
        /**
         * Gets array of all "description" elements
         * @deprecated
         */
        public java.lang.String[] getDescriptionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<org.apache.xmlbeans.XmlString> targetList = new java.util.ArrayList<org.apache.xmlbeans.XmlString>();
                get_store().find_all_element_users(DESCRIPTION$4, targetList);
                java.lang.String[] result = new java.lang.String[targetList.size()];
                for (int i = 0, len = targetList.size() ; i < len ; i++)
                    result[i] = ((org.apache.xmlbeans.SimpleValue)targetList.get(i)).getStringValue();
                return result;
            }
        }
        
        /**
         * Gets ith "description" element
         */
        public java.lang.String getDescriptionArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DESCRIPTION$4, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) a List of "description" elements
         */
        public java.util.List<org.apache.xmlbeans.XmlString> xgetDescriptionList()
        {
            final class DescriptionList extends java.util.AbstractList<org.apache.xmlbeans.XmlString>
            {
                public org.apache.xmlbeans.XmlString get(int i)
                    { return MailNodeImpl.this.xgetDescriptionArray(i); }
                
                public org.apache.xmlbeans.XmlString set(int i, org.apache.xmlbeans.XmlString o)
                {
                    org.apache.xmlbeans.XmlString old = MailNodeImpl.this.xgetDescriptionArray(i);
                    MailNodeImpl.this.xsetDescriptionArray(i, o);
                    return old;
                }
                
                public void add(int i, org.apache.xmlbeans.XmlString o)
                    { MailNodeImpl.this.insertNewDescription(i).set(o); }
                
                public org.apache.xmlbeans.XmlString remove(int i)
                {
                    org.apache.xmlbeans.XmlString old = MailNodeImpl.this.xgetDescriptionArray(i);
                    MailNodeImpl.this.removeDescription(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfDescriptionArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new DescriptionList();
            }
        }
        
        /**
         * Gets array of all "description" elements
         * @deprecated
         */
        public org.apache.xmlbeans.XmlString[] xgetDescriptionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<org.apache.xmlbeans.XmlString> targetList = new java.util.ArrayList<org.apache.xmlbeans.XmlString>();
                get_store().find_all_element_users(DESCRIPTION$4, targetList);
                org.apache.xmlbeans.XmlString[] result = new org.apache.xmlbeans.XmlString[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets (as xml) ith "description" element
         */
        public org.apache.xmlbeans.XmlString xgetDescriptionArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(DESCRIPTION$4, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return (org.apache.xmlbeans.XmlString)target;
            }
        }
        
        /**
         * Returns number of "description" element
         */
        public int sizeOfDescriptionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(DESCRIPTION$4);
            }
        }
        
        /**
         * Sets array of all "description" element
         */
        public void setDescriptionArray(java.lang.String[] descriptionArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(descriptionArray, DESCRIPTION$4);
            }
        }
        
        /**
         * Sets ith "description" element
         */
        public void setDescriptionArray(int i, java.lang.String description)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DESCRIPTION$4, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.setStringValue(description);
            }
        }
        
        /**
         * Sets (as xml) array of all "description" element
         */
        public void xsetDescriptionArray(org.apache.xmlbeans.XmlString[]descriptionArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(descriptionArray, DESCRIPTION$4);
            }
        }
        
        /**
         * Sets (as xml) ith "description" element
         */
        public void xsetDescriptionArray(int i, org.apache.xmlbeans.XmlString description)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(DESCRIPTION$4, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(description);
            }
        }
        
        /**
         * Inserts the value as the ith "description" element
         */
        public void insertDescription(int i, java.lang.String description)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = 
                    (org.apache.xmlbeans.SimpleValue)get_store().insert_element_user(DESCRIPTION$4, i);
                target.setStringValue(description);
            }
        }
        
        /**
         * Appends the value as the last "description" element
         */
        public void addDescription(java.lang.String description)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DESCRIPTION$4);
                target.setStringValue(description);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "description" element
         */
        public org.apache.xmlbeans.XmlString insertNewDescription(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().insert_element_user(DESCRIPTION$4, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "description" element
         */
        public org.apache.xmlbeans.XmlString addNewDescription()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(DESCRIPTION$4);
                return target;
            }
        }
        
        /**
         * Removes the ith "description" element
         */
        public void removeDescription(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(DESCRIPTION$4, i);
            }
        }
        
        /**
         * Gets a List of "event" elements
         */
        public java.util.List<x2.orgJpdl3.jbpm.EventDocument.Event> getEventList()
        {
            final class EventList extends java.util.AbstractList<x2.orgJpdl3.jbpm.EventDocument.Event>
            {
                public x2.orgJpdl3.jbpm.EventDocument.Event get(int i)
                    { return MailNodeImpl.this.getEventArray(i); }
                
                public x2.orgJpdl3.jbpm.EventDocument.Event set(int i, x2.orgJpdl3.jbpm.EventDocument.Event o)
                {
                    x2.orgJpdl3.jbpm.EventDocument.Event old = MailNodeImpl.this.getEventArray(i);
                    MailNodeImpl.this.setEventArray(i, o);
                    return old;
                }
                
                public void add(int i, x2.orgJpdl3.jbpm.EventDocument.Event o)
                    { MailNodeImpl.this.insertNewEvent(i).set(o); }
                
                public x2.orgJpdl3.jbpm.EventDocument.Event remove(int i)
                {
                    x2.orgJpdl3.jbpm.EventDocument.Event old = MailNodeImpl.this.getEventArray(i);
                    MailNodeImpl.this.removeEvent(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfEventArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new EventList();
            }
        }
        
        /**
         * Gets array of all "event" elements
         * @deprecated
         */
        public x2.orgJpdl3.jbpm.EventDocument.Event[] getEventArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<x2.orgJpdl3.jbpm.EventDocument.Event> targetList = new java.util.ArrayList<x2.orgJpdl3.jbpm.EventDocument.Event>();
                get_store().find_all_element_users(EVENT$6, targetList);
                x2.orgJpdl3.jbpm.EventDocument.Event[] result = new x2.orgJpdl3.jbpm.EventDocument.Event[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets ith "event" element
         */
        public x2.orgJpdl3.jbpm.EventDocument.Event getEventArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.EventDocument.Event target = null;
                target = (x2.orgJpdl3.jbpm.EventDocument.Event)get_store().find_element_user(EVENT$6, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target;
            }
        }
        
        /**
         * Returns number of "event" element
         */
        public int sizeOfEventArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(EVENT$6);
            }
        }
        
        /**
         * Sets array of all "event" element
         */
        public void setEventArray(x2.orgJpdl3.jbpm.EventDocument.Event[] eventArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(eventArray, EVENT$6);
            }
        }
        
        /**
         * Sets ith "event" element
         */
        public void setEventArray(int i, x2.orgJpdl3.jbpm.EventDocument.Event event)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.EventDocument.Event target = null;
                target = (x2.orgJpdl3.jbpm.EventDocument.Event)get_store().find_element_user(EVENT$6, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(event);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "event" element
         */
        public x2.orgJpdl3.jbpm.EventDocument.Event insertNewEvent(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.EventDocument.Event target = null;
                target = (x2.orgJpdl3.jbpm.EventDocument.Event)get_store().insert_element_user(EVENT$6, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "event" element
         */
        public x2.orgJpdl3.jbpm.EventDocument.Event addNewEvent()
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.EventDocument.Event target = null;
                target = (x2.orgJpdl3.jbpm.EventDocument.Event)get_store().add_element_user(EVENT$6);
                return target;
            }
        }
        
        /**
         * Removes the ith "event" element
         */
        public void removeEvent(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(EVENT$6, i);
            }
        }
        
        /**
         * Gets a List of "exception-handler" elements
         */
        public java.util.List<x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler> getExceptionHandlerList()
        {
            final class ExceptionHandlerList extends java.util.AbstractList<x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler>
            {
                public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler get(int i)
                    { return MailNodeImpl.this.getExceptionHandlerArray(i); }
                
                public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler set(int i, x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler o)
                {
                    x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler old = MailNodeImpl.this.getExceptionHandlerArray(i);
                    MailNodeImpl.this.setExceptionHandlerArray(i, o);
                    return old;
                }
                
                public void add(int i, x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler o)
                    { MailNodeImpl.this.insertNewExceptionHandler(i).set(o); }
                
                public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler remove(int i)
                {
                    x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler old = MailNodeImpl.this.getExceptionHandlerArray(i);
                    MailNodeImpl.this.removeExceptionHandler(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfExceptionHandlerArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new ExceptionHandlerList();
            }
        }
        
        /**
         * Gets array of all "exception-handler" elements
         * @deprecated
         */
        public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler[] getExceptionHandlerArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler> targetList = new java.util.ArrayList<x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler>();
                get_store().find_all_element_users(EXCEPTIONHANDLER$8, targetList);
                x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler[] result = new x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets ith "exception-handler" element
         */
        public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler getExceptionHandlerArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler target = null;
                target = (x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler)get_store().find_element_user(EXCEPTIONHANDLER$8, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target;
            }
        }
        
        /**
         * Returns number of "exception-handler" element
         */
        public int sizeOfExceptionHandlerArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(EXCEPTIONHANDLER$8);
            }
        }
        
        /**
         * Sets array of all "exception-handler" element
         */
        public void setExceptionHandlerArray(x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler[] exceptionHandlerArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(exceptionHandlerArray, EXCEPTIONHANDLER$8);
            }
        }
        
        /**
         * Sets ith "exception-handler" element
         */
        public void setExceptionHandlerArray(int i, x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler exceptionHandler)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler target = null;
                target = (x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler)get_store().find_element_user(EXCEPTIONHANDLER$8, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(exceptionHandler);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "exception-handler" element
         */
        public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler insertNewExceptionHandler(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler target = null;
                target = (x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler)get_store().insert_element_user(EXCEPTIONHANDLER$8, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "exception-handler" element
         */
        public x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler addNewExceptionHandler()
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler target = null;
                target = (x2.orgJpdl3.jbpm.ExceptionHandlerDocument.ExceptionHandler)get_store().add_element_user(EXCEPTIONHANDLER$8);
                return target;
            }
        }
        
        /**
         * Removes the ith "exception-handler" element
         */
        public void removeExceptionHandler(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(EXCEPTIONHANDLER$8, i);
            }
        }
        
        /**
         * Gets a List of "timer" elements
         */
        public java.util.List<x2.orgJpdl3.jbpm.TimerDocument.Timer> getTimerList()
        {
            final class TimerList extends java.util.AbstractList<x2.orgJpdl3.jbpm.TimerDocument.Timer>
            {
                public x2.orgJpdl3.jbpm.TimerDocument.Timer get(int i)
                    { return MailNodeImpl.this.getTimerArray(i); }
                
                public x2.orgJpdl3.jbpm.TimerDocument.Timer set(int i, x2.orgJpdl3.jbpm.TimerDocument.Timer o)
                {
                    x2.orgJpdl3.jbpm.TimerDocument.Timer old = MailNodeImpl.this.getTimerArray(i);
                    MailNodeImpl.this.setTimerArray(i, o);
                    return old;
                }
                
                public void add(int i, x2.orgJpdl3.jbpm.TimerDocument.Timer o)
                    { MailNodeImpl.this.insertNewTimer(i).set(o); }
                
                public x2.orgJpdl3.jbpm.TimerDocument.Timer remove(int i)
                {
                    x2.orgJpdl3.jbpm.TimerDocument.Timer old = MailNodeImpl.this.getTimerArray(i);
                    MailNodeImpl.this.removeTimer(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfTimerArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new TimerList();
            }
        }
        
        /**
         * Gets array of all "timer" elements
         * @deprecated
         */
        public x2.orgJpdl3.jbpm.TimerDocument.Timer[] getTimerArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<x2.orgJpdl3.jbpm.TimerDocument.Timer> targetList = new java.util.ArrayList<x2.orgJpdl3.jbpm.TimerDocument.Timer>();
                get_store().find_all_element_users(TIMER$10, targetList);
                x2.orgJpdl3.jbpm.TimerDocument.Timer[] result = new x2.orgJpdl3.jbpm.TimerDocument.Timer[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets ith "timer" element
         */
        public x2.orgJpdl3.jbpm.TimerDocument.Timer getTimerArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TimerDocument.Timer target = null;
                target = (x2.orgJpdl3.jbpm.TimerDocument.Timer)get_store().find_element_user(TIMER$10, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target;
            }
        }
        
        /**
         * Returns number of "timer" element
         */
        public int sizeOfTimerArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(TIMER$10);
            }
        }
        
        /**
         * Sets array of all "timer" element
         */
        public void setTimerArray(x2.orgJpdl3.jbpm.TimerDocument.Timer[] timerArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(timerArray, TIMER$10);
            }
        }
        
        /**
         * Sets ith "timer" element
         */
        public void setTimerArray(int i, x2.orgJpdl3.jbpm.TimerDocument.Timer timer)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TimerDocument.Timer target = null;
                target = (x2.orgJpdl3.jbpm.TimerDocument.Timer)get_store().find_element_user(TIMER$10, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(timer);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "timer" element
         */
        public x2.orgJpdl3.jbpm.TimerDocument.Timer insertNewTimer(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TimerDocument.Timer target = null;
                target = (x2.orgJpdl3.jbpm.TimerDocument.Timer)get_store().insert_element_user(TIMER$10, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "timer" element
         */
        public x2.orgJpdl3.jbpm.TimerDocument.Timer addNewTimer()
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TimerDocument.Timer target = null;
                target = (x2.orgJpdl3.jbpm.TimerDocument.Timer)get_store().add_element_user(TIMER$10);
                return target;
            }
        }
        
        /**
         * Removes the ith "timer" element
         */
        public void removeTimer(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(TIMER$10, i);
            }
        }
        
        /**
         * Gets a List of "transition" elements
         */
        public java.util.List<x2.orgJpdl3.jbpm.TransitionDocument.Transition> getTransitionList()
        {
            final class TransitionList extends java.util.AbstractList<x2.orgJpdl3.jbpm.TransitionDocument.Transition>
            {
                public x2.orgJpdl3.jbpm.TransitionDocument.Transition get(int i)
                    { return MailNodeImpl.this.getTransitionArray(i); }
                
                public x2.orgJpdl3.jbpm.TransitionDocument.Transition set(int i, x2.orgJpdl3.jbpm.TransitionDocument.Transition o)
                {
                    x2.orgJpdl3.jbpm.TransitionDocument.Transition old = MailNodeImpl.this.getTransitionArray(i);
                    MailNodeImpl.this.setTransitionArray(i, o);
                    return old;
                }
                
                public void add(int i, x2.orgJpdl3.jbpm.TransitionDocument.Transition o)
                    { MailNodeImpl.this.insertNewTransition(i).set(o); }
                
                public x2.orgJpdl3.jbpm.TransitionDocument.Transition remove(int i)
                {
                    x2.orgJpdl3.jbpm.TransitionDocument.Transition old = MailNodeImpl.this.getTransitionArray(i);
                    MailNodeImpl.this.removeTransition(i);
                    return old;
                }
                
                public int size()
                    { return MailNodeImpl.this.sizeOfTransitionArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new TransitionList();
            }
        }
        
        /**
         * Gets array of all "transition" elements
         * @deprecated
         */
        public x2.orgJpdl3.jbpm.TransitionDocument.Transition[] getTransitionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List<x2.orgJpdl3.jbpm.TransitionDocument.Transition> targetList = new java.util.ArrayList<x2.orgJpdl3.jbpm.TransitionDocument.Transition>();
                get_store().find_all_element_users(TRANSITION$12, targetList);
                x2.orgJpdl3.jbpm.TransitionDocument.Transition[] result = new x2.orgJpdl3.jbpm.TransitionDocument.Transition[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets ith "transition" element
         */
        public x2.orgJpdl3.jbpm.TransitionDocument.Transition getTransitionArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TransitionDocument.Transition target = null;
                target = (x2.orgJpdl3.jbpm.TransitionDocument.Transition)get_store().find_element_user(TRANSITION$12, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target;
            }
        }
        
        /**
         * Returns number of "transition" element
         */
        public int sizeOfTransitionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(TRANSITION$12);
            }
        }
        
        /**
         * Sets array of all "transition" element
         */
        public void setTransitionArray(x2.orgJpdl3.jbpm.TransitionDocument.Transition[] transitionArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(transitionArray, TRANSITION$12);
            }
        }
        
        /**
         * Sets ith "transition" element
         */
        public void setTransitionArray(int i, x2.orgJpdl3.jbpm.TransitionDocument.Transition transition)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TransitionDocument.Transition target = null;
                target = (x2.orgJpdl3.jbpm.TransitionDocument.Transition)get_store().find_element_user(TRANSITION$12, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(transition);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "transition" element
         */
        public x2.orgJpdl3.jbpm.TransitionDocument.Transition insertNewTransition(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TransitionDocument.Transition target = null;
                target = (x2.orgJpdl3.jbpm.TransitionDocument.Transition)get_store().insert_element_user(TRANSITION$12, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "transition" element
         */
        public x2.orgJpdl3.jbpm.TransitionDocument.Transition addNewTransition()
        {
            synchronized (monitor())
            {
                check_orphaned();
                x2.orgJpdl3.jbpm.TransitionDocument.Transition target = null;
                target = (x2.orgJpdl3.jbpm.TransitionDocument.Transition)get_store().add_element_user(TRANSITION$12);
                return target;
            }
        }
        
        /**
         * Removes the ith "transition" element
         */
        public void removeTransition(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(TRANSITION$12, i);
            }
        }
        
        /**
         * Gets the "name" attribute
         */
        public java.lang.String getName()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$14);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "name" attribute
         */
        public org.apache.xmlbeans.XmlString xgetName()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$14);
                return target;
            }
        }
        
        /**
         * Sets the "name" attribute
         */
        public void setName(java.lang.String name)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$14);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(NAME$14);
                }
                target.setStringValue(name);
            }
        }
        
        /**
         * Sets (as xml) the "name" attribute
         */
        public void xsetName(org.apache.xmlbeans.XmlString name)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$14);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(NAME$14);
                }
                target.set(name);
            }
        }
        
        /**
         * Gets the "async" attribute
         */
        public java.lang.String getAsync()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ASYNC$16);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_default_attribute_value(ASYNC$16);
                }
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "async" attribute
         */
        public org.apache.xmlbeans.XmlString xgetAsync()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(ASYNC$16);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_default_attribute_value(ASYNC$16);
                }
                return target;
            }
        }
        
        /**
         * True if has "async" attribute
         */
        public boolean isSetAsync()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(ASYNC$16) != null;
            }
        }
        
        /**
         * Sets the "async" attribute
         */
        public void setAsync(java.lang.String async)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ASYNC$16);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ASYNC$16);
                }
                target.setStringValue(async);
            }
        }
        
        /**
         * Sets (as xml) the "async" attribute
         */
        public void xsetAsync(org.apache.xmlbeans.XmlString async)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(ASYNC$16);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(ASYNC$16);
                }
                target.set(async);
            }
        }
        
        /**
         * Unsets the "async" attribute
         */
        public void unsetAsync()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(ASYNC$16);
            }
        }
        
        /**
         * Gets the "template" attribute
         */
        public java.lang.String getTemplate()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TEMPLATE$18);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "template" attribute
         */
        public org.apache.xmlbeans.XmlString xgetTemplate()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(TEMPLATE$18);
                return target;
            }
        }
        
        /**
         * True if has "template" attribute
         */
        public boolean isSetTemplate()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(TEMPLATE$18) != null;
            }
        }
        
        /**
         * Sets the "template" attribute
         */
        public void setTemplate(java.lang.String template)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TEMPLATE$18);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(TEMPLATE$18);
                }
                target.setStringValue(template);
            }
        }
        
        /**
         * Sets (as xml) the "template" attribute
         */
        public void xsetTemplate(org.apache.xmlbeans.XmlString template)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(TEMPLATE$18);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(TEMPLATE$18);
                }
                target.set(template);
            }
        }
        
        /**
         * Unsets the "template" attribute
         */
        public void unsetTemplate()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(TEMPLATE$18);
            }
        }
        
        /**
         * Gets the "actors" attribute
         */
        public java.lang.String getActors()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ACTORS$20);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "actors" attribute
         */
        public org.apache.xmlbeans.XmlString xgetActors()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(ACTORS$20);
                return target;
            }
        }
        
        /**
         * True if has "actors" attribute
         */
        public boolean isSetActors()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(ACTORS$20) != null;
            }
        }
        
        /**
         * Sets the "actors" attribute
         */
        public void setActors(java.lang.String actors)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ACTORS$20);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ACTORS$20);
                }
                target.setStringValue(actors);
            }
        }
        
        /**
         * Sets (as xml) the "actors" attribute
         */
        public void xsetActors(org.apache.xmlbeans.XmlString actors)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(ACTORS$20);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(ACTORS$20);
                }
                target.set(actors);
            }
        }
        
        /**
         * Unsets the "actors" attribute
         */
        public void unsetActors()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(ACTORS$20);
            }
        }
        
        /**
         * Gets the "to" attribute
         */
        public java.lang.String getTo()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TO$22);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "to" attribute
         */
        public org.apache.xmlbeans.XmlString xgetTo()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(TO$22);
                return target;
            }
        }
        
        /**
         * True if has "to" attribute
         */
        public boolean isSetTo()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(TO$22) != null;
            }
        }
        
        /**
         * Sets the "to" attribute
         */
        public void setTo(java.lang.String to)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TO$22);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(TO$22);
                }
                target.setStringValue(to);
            }
        }
        
        /**
         * Sets (as xml) the "to" attribute
         */
        public void xsetTo(org.apache.xmlbeans.XmlString to)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(TO$22);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(TO$22);
                }
                target.set(to);
            }
        }
        
        /**
         * Unsets the "to" attribute
         */
        public void unsetTo()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(TO$22);
            }
        }
        
        /**
         * Gets the "subject" attribute
         */
        public java.lang.String getSubject2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(SUBJECT2$24);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "subject" attribute
         */
        public org.apache.xmlbeans.XmlString xgetSubject2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(SUBJECT2$24);
                return target;
            }
        }
        
        /**
         * True if has "subject" attribute
         */
        public boolean isSetSubject2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(SUBJECT2$24) != null;
            }
        }
        
        /**
         * Sets the "subject" attribute
         */
        public void setSubject2(java.lang.String subject2)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(SUBJECT2$24);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(SUBJECT2$24);
                }
                target.setStringValue(subject2);
            }
        }
        
        /**
         * Sets (as xml) the "subject" attribute
         */
        public void xsetSubject2(org.apache.xmlbeans.XmlString subject2)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(SUBJECT2$24);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(SUBJECT2$24);
                }
                target.set(subject2);
            }
        }
        
        /**
         * Unsets the "subject" attribute
         */
        public void unsetSubject2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(SUBJECT2$24);
            }
        }
        
        /**
         * Gets the "text" attribute
         */
        public java.lang.String getText2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TEXT2$26);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "text" attribute
         */
        public org.apache.xmlbeans.XmlString xgetText2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(TEXT2$26);
                return target;
            }
        }
        
        /**
         * True if has "text" attribute
         */
        public boolean isSetText2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(TEXT2$26) != null;
            }
        }
        
        /**
         * Sets the "text" attribute
         */
        public void setText2(java.lang.String text2)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TEXT2$26);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(TEXT2$26);
                }
                target.setStringValue(text2);
            }
        }
        
        /**
         * Sets (as xml) the "text" attribute
         */
        public void xsetText2(org.apache.xmlbeans.XmlString text2)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlString target = null;
                target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(TEXT2$26);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(TEXT2$26);
                }
                target.set(text2);
            }
        }
        
        /**
         * Unsets the "text" attribute
         */
        public void unsetText2()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(TEXT2$26);
            }
        }
    }
}
